<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>11-Date日期对象</title>
  <script>
    // Date() 日期对象 是一个构造函数 必须使用new来调用创建我们的日期对象
    // 官方语法：
    // new Date();
    // new Date(value);
    // new Date(dateString);
    // new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
    var date = new Date();    // 如果没有参数 返回当前系统的当前时间
    console.log(date);

    // 1. 参数常用写法：
    // 数字型：   2019, 10, 01
    console.log(new Date(2019, 10, 01)); // 返回的是11月1日的
    // 字符串型： '2019-10-1 8:8:8'
    console.log(new Date('2019-10-1 8:8:8'));


    // 2. 格式化日期 年月日
    console.log(date.getFullYear());      // 2020 当前日期的年
    console.log(date.getMonth() + 1);     // 3+1  获取月份时是按照0~11获取的 所以要在原先获取月份的基础上+1
    console.log(date.getDate());          // 30   当前月份的第几号
    console.log(date.getDay());           // 4    当前星期的第几天 周一返回1 周六返回6 需要注意的是周日返回0


    // 3. 我们写一个 2020年4月30日 星期四
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var dates = date.getDate();
    // 下标从0开始 周日
    var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
    var day = date.getDay();

    console.log('今天是：' + year + '年' + month + '月' + dates + '日' + ' ' + arr[day]);

    // 4. 格式化日期 时分秒
    console.log(date.getHours());
    console.log(date.getMinutes());
    console.log(date.getSeconds());

    // 5. 要求封装一个函数返回当前的时分秒 格式 00: 00: 00
    function getTime() {
      var time = new Date();
      var hour = time.getHours();
      var minute = time.getMinutes();
      var second = time.getSeconds();
      // 使用逻辑中断进行补0
      hour < 10 && (hour = '0' + hour);
      minute < 10 && (minute = '0' + minute);
      second < 10 && (second = '0' + second);
      return hour + ': ' + minute + ': ' + second;
    }

    console.log('当前时间: ' + getTime());

    // 6. (时间戳)获得Date总的毫秒数 不是当前时间的好描述 而是距离1970年1月1日过了多少毫秒数 
    // a. 通过valueOf() getTime()
    var date = new Date();
    console.log(date.valueOf());  // 1588233363776 就是我们现实时间距离1970.1.1总得好描述
    console.log(date.getTime()); // 一样

    // b. 简单的写法（常用写法）
    var date1 = +new Date(); // +new Date() 返回的就是总的好描述
    console.log(date1);

    // c. H5新增 获得总得毫秒数 IE8 IE7 不支持
    console.log(Date.now());

  </script>
</head>

<body>

</body>

</html>